import Vue from "vue";
import VueRouter from "vue-router";
import HomeView from "../views/Home.vue";

Vue.use(VueRouter);

const routes = [
  {
    path: "/home",
    name: "home",
    component: HomeView,
    children: [
      // {
      //   // 用户列表
      //   path: "/users",
      //   name: "users",
      //   component: () => import("../views/Users.vue"),
      //   meta: {
      //     title: ["用户管理", "用户列表"],
      //   },
      // },
      // {
      //   // 角色列表
      //   path: "/roles",
      //   name: "roles",
      //   component: () => import("../views/Roles.vue"),
      //   meta: {
      //     title: ["权限管理", "角色列表"],
      //   },
      // },
      // {
      //   // 权限列表
      //   path: "/rights",
      //   name: "rights",
      //   component: () => import("../views/Rights.vue"),
      //   meta: {
      //     title: ["权限管理", "权限列表"],
      //   },
      // },
      // {
      //   // 商品列表
      //   path: "/goods",
      //   name: "goods",
      //   component: () => import("../views/GoodList.vue"),
      //   meta: {
      //     title: ["商品管理", "商品列表"],
      //   },
      //   children: [
      //     {
      //       path: "/goods/add",
      //       name: "add",
      //       component: () => import("../views/add.vue"),
      //       meta: {
      //         title: ["商品管理", "添加商品"],
      //       },
      //     },
      //   ],
      // },
      // {
      //   // 分类参数
      //   path: "/params",
      //   name: "params",
      //   component: () => import("../views/Params.vue"),
      //   meta: {
      //     title: ["商品管理", "分类参数"],
      //   },
      // },
      // {
      //   // 商品分类
      //   path: "/categories",
      //   name: "categories",
      //   component: () => import("../views/Categories.vue"),
      //   meta: {
      //     title: ["商品管理", "商品分类"],
      //   },
      // },
      // {
      //   // 订单列表
      //   path: "/orders",
      //   name: "orders",
      //   component: () => import("../views/Orders.vue"),
      //   meta: {
      //     title: ["订单管理", "订单列表"],
      //   },
      // },
      // {
      //   // 数据报表
      //   path: "/reports",
      //   name: "reports",
      //   component: () => import("../views/Reports.vue"),
      //   meta: {
      //     title: ["数据统计", "数据报表"],
      //   },
      // },
    ],
  },
  {
    path: "/",
    name: "login",
    component: () => import("../views/Login.vue"),
  },
];



const router = new VueRouter({
  routes,
});

let menu = JSON.parse(localStorage.getItem("menu"));
let token = localStorage.getItem("token");
if (menu && token) {
  let arr = [];
  function fn(data) {
    data.forEach((item) => {
      if (!item.children.length) {
        let path = item.path.slice(0, 1).toUpperCase() + item.path.slice(1);
        arr.push({
          path: "/" + item.path,
          component: () => import(`../views/${path}.vue`),
        });
      } else {
        fn(item.children);
      }
    });
    return arr;
  }
  let arr1 = fn(menu);
  arr1.forEach((item) => {
    router.addRoute("home", item);
  });
  router.addRoute("goods", {
    path: "/goods/add",
    name: "add",
    component: () => import(`../views/add.vue`),
  });
}

router.beforeEach((to, from, next) => {
  // 如果当前页面的地址是login直接放行
  if (to.name == "login") {
    return next();
  }
  // 如果有token直接放行
  if (localStorage.getItem("token")) {
    next();
  } else {
    // 没有token的话，说明没有登录成功，不能访问其他页面，让他继续留在登录页登陆
    next("/login");
  }
});

export default router;
